package com.ssy.lingxi.member.merchant.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.io.Serializable;

/**
 * 会员服务配置参数类
 * @author 万宁
 * @version 2.0.0
 * @date 2020-07-06
 */
@Component
@ConfigurationProperties(prefix = "lingxi")
public class ServiceVariable implements Serializable {
    private static final long serialVersionUID = -6871979704719734126L;

    /**
     * 短信验证码在Redis中缓存时间（分钟）
     */
    public static Integer SMSCODE_CACHED_TIME_MINUTES;

    /**
     * 通过配置文件配置注入到静态变量中，必须使用set方法
     * @param minutes 有效时长（分钟）
     */
    @Value("${lingxi.member.security.smscode-expire-minutes}")
    private void setSmsCachedTimeMinutes(Integer minutes) {
        SMSCODE_CACHED_TIME_MINUTES = minutes;
    }

    /**
     * 邮件验证码在Redis中缓存时间（分钟）
     */
    public static int MAILCODE_CACHED_TIME_MINUTES;

    /**
     * 通过配置文件配置注入到静态变量中，必须使用set方法
     * @param minutes 有效时长（分钟）
     */
    @Value("${lingxi.member.security.mailcode-expire-minutes}")
    private void setMailcodeCachedTimeMinutes(int minutes) {
        MAILCODE_CACHED_TIME_MINUTES = minutes;
    }

    /**
     * 用户登录Web客户端后，Token等信息在缓存中保存的时长（分钟）
     */
    public static long WEB_LOGIN_TOKEN_EXPIRE_MINUTES;

    @Value("${lingxi.member.login.token-expire-minutes}")
    private void setUserTokenExpireMinutes(long minutes)
    {
        WEB_LOGIN_TOKEN_EXPIRE_MINUTES = minutes;
    }

    /**
     * 临时文件路径
     */
    public static String MEMBER_TEMP_FILE_DIR;

    @Value("${lingxi.member.file.path}")
    private void setMemberTempFileDir(String path) {
        MEMBER_TEMP_FILE_DIR = path;
    }

    /**
     * 邮件Smtp服务器地址
     */
    public static String MAIL_SMTP_HOST;

    @Value("${lingxi.member.mailserver.smtphost}")
    private void setMailSmtpHost(String host) {
        MAIL_SMTP_HOST = host;
    }

    /**
     * 邮件SMTP端口
     */
    public static Integer MAIL_SMTP_PORT;

    @Value("${lingxi.member.mailserver.smtpport}")
    private void setMailSmtpPort(String port) {
        MAIL_SMTP_PORT = Integer.valueOf(port);
    }

    /**
     * 邮件发送的邮箱
     */
    public static String MAIL_ACCOUNT;

    @Value("${lingxi.member.mailserver.account}")
    private void setMailAccount(String account) {
        MAIL_ACCOUNT = account;
    }

    /**
     * 邮件发送邮箱的账号
     */
    public static String MAIL_USERNAME;

    @Value("${lingxi.member.mailserver.username}")
    private void setMailUsername(String username) {
        MAIL_USERNAME = username;
    }

    /**
     * 邮件发送邮箱的密码
     */
    public static String MAIL_PASSWORD;

    @Value("${lingxi.member.mailserver.password}")
    private void setMailPassword(String password) {
        MAIL_PASSWORD = password;
    }

    /**
     * 二维码授权码认证链接(当前使用是网关地址)
     */
    public static String AUTH_URL;

    @Value("${lingxi.member.login.auth-url}")
    private void setAuthUrl(String authUrl) {
        AUTH_URL = authUrl;
    }
}
